﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Reporting.WinForms;
using Sesi.Dados.Enumeradores;
using Sesi.Servico;

namespace Sesi.Telas
{
    public partial class ExibirRelatorio : Form
    {
        public ExibirRelatorio()
        {
            InitializeComponent();
        }

        private void Relatorio_Load(object sender, EventArgs e)
        {
            int quantidadeParticipantes = 0;
            BindingSource bindingSource = new BindingSource();

            switch (Relatorio.PalestraSelecionada.TipoPalestra)
            {
                case TipoPalestra.CONFERENCIADEABERTURA:
                {
                    bindingSource.DataSource =
                        Fachada.GetInstancia().ObterParticipantesPorConfAbertura(Relatorio.PalestraSelecionada);
                    quantidadeParticipantes =
                        Fachada.GetInstancia().ParticipantesPorConfAbertura(Relatorio.PalestraSelecionada);
                    break;
                }

                case TipoPalestra.CONFERENCIADEENCERRAMENTO:
                {
                    bindingSource.DataSource =
                       Fachada.GetInstancia().ObterParticipantesPorConfEncerramento(Relatorio.PalestraSelecionada);
                    quantidadeParticipantes =
                        Fachada.GetInstancia().ParticipantesPorConfEncerramento(Relatorio.PalestraSelecionada);
                    break;
                }

                case TipoPalestra.SALATEMATICA:
                {
                    bindingSource.DataSource =
                        Fachada.GetInstancia().ObterParticipantesPorSalaTematica(Relatorio.PalestraSelecionada);
                    quantidadeParticipantes =
                        Fachada.GetInstancia().ParticipantesPorSalaTematica(Relatorio.PalestraSelecionada);
                    break;
                }

                case TipoPalestra.MESAREDONDA:
                {
                    bindingSource.DataSource =
                        Fachada.GetInstancia().ObterParticipantesPorMesaRedonda(Relatorio.PalestraSelecionada);
                    quantidadeParticipantes =
                        Fachada.GetInstancia().ParticipantesPorMesaRedonda(Relatorio.PalestraSelecionada);
                    break;
                }
            }
            


            rptRelatorio.LocalReport.DataSources.Add(new ReportDataSource("DataSetRelatorio", bindingSource));

            ReportParameter[] parameters = new ReportParameter[3];
            parameters[0] = new ReportParameter("NomeRelatorios", Relatorio.PalestraSelecionada.Tema);
            parameters[1] = new ReportParameter("QuantidadeVagas", Relatorio.PalestraSelecionada.QuantidadeVagas + "/" + quantidadeParticipantes);
            parameters[2] = new ReportParameter("Horario",Relatorio.PalestraSelecionada.HorarioInicio+" - "+Relatorio.PalestraSelecionada.HorarioTermino);
            rptRelatorio.LocalReport.SetParameters(parameters);

            

            rptRelatorio.LocalReport.ReportPath = @"Relatorios\RelatoriosParticipantes.rdlc";
            rptRelatorio.RefreshReport();
            rptRelatorio.Visible = true;
           

           // this.rptRelatorio.RefreshReport();
        }
    }
}
